package com.yjzx.util.service.enums.file;

/**
 * @author yjzx
 * @date 2024/8/13
 * @description 无法直接查看的文件类型枚举
 */
public enum ApplicationFileTypeEnum implements FileType {
    /**
     * 无法直接查看的文件类型枚举
     */
    AI(".ai", "application/postscript"),
    ANV(".anv", "application/x-anv"),
    AWF(".awf", "application/vnd.adobe.workflow"),
    CLASS(".class", "application/octet-stream"),
    OBJ(".obj", "application/octet-stream"),
    OUT(".out", "application/octet-stream"),
    DLL(".dll", "application/octet-stream"),
    EXE(".exe", "application/octet-stream"),
    PDF(".pdf", "application/pdf"),
    PDB(".pdb", "application/x-pdb"),
    LIB(".lib", "application/octet-stream"),
    // 目标文件
    O(".o", "application/octet-stream"),
    // 静态库文件
    A(".a", "application/octet-stream"),
    // Windows 系统驱动程序
    SYS(".sys", "application/octet-stream"),
    // 驱动程序
    DRV(".drv", "application/octet-stream"),
    // 二进制文件
    BIN(".bin", "application/octet-stream"),
    // 数据文件
    DAT(".dat", "application/octet-stream"),
    // 映像文件
    IMG(".img", "application/octet-stream"),
    // ROM 文件
    ROM(".rom", "application/octet-stream"),
    // 快捷方式文件
    LNK(".lnk", "application/octet-stream"),
    // 游标文件
    CUR(".cur", "image/x-icon"),
    // DLL 系统文件
    DLL_SYS(".dll.sys", "application/octet-stream"),
    // DLL 驱动程序
    DLL_DRV(".dll.drv", "application/octet-stream"),
    ;


    ApplicationFileTypeEnum(String extension, String mimeType) {
        this.extension = extension;
        this.mimeType = mimeType;
    }

    private final String extension;

    private final String mimeType;

    @Override
    public String getExtension() {
        return extension;
    }

    @Override
    public String getMimeType() {
        return mimeType;
    }

}
